package com.bjx.demo.domain.bo;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import org.hibernate.validator.constraints.Range;
import com.bjx.common.core.domain.group.Update;
import java.util.Date;

/**
 * @desc: 请假信息BO实体
 * @author: liushuai
 * @date: 2022/10/20
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Schema(title = "VacationBO",description = "请假信息BO实体")
public class VacationBO  {
        /**
        * 请假Id
        */
        @NotNull(message = "请假Id不能为空",groups = Update.class)
        @Schema(title = "vacationId",description = "请假Id")
        private  Long vacationId; 
        /**
        * 请假事由
        */
        @NotNull(message = "请假事由不能为空")
        @Size(max = 255,message = "请假事由长度为1到255个字符")
        @Schema(title = "reasons",description = "请假事由")
        private  String reasons; 
        /**
        * 申请人
        */
        @NotNull(message = "申请人不能为空")
        @Schema(title = "applyUser",description = "申请人")
        private  Long applyUser; 
        /**
        * 审批状态
        */
        @NotNull(message = "审批状态不能为空")
        @Schema(title = "status",description = "审批状态")
        private  Short status; 
        /**
        * 组织机构Id
        */
        @NotNull(message = "组织机构Id不能为空")
        @Schema(title = "orgId",description = "组织机构Id")
        private  Long orgId; 
        /**
        * 公司Id
        */
        @NotNull(message = "公司Id不能为空")
        @Schema(title = "comId",description = "公司Id")
        private  Long comId; 
        /**
        * 假期开始时间
        */
        @NotNull(message = "假期开始时间不能为空")
        @Schema(title = "startTime",description = "假期开始时间")
        private  Date startTime; 
        /**
        * 假期结束时间
        */
        @NotNull(message = "假期结束时间不能为空")
        @Schema(title = "endTime",description = "假期结束时间")
        private  Date endTime; 
        /**
        * 创建时间
        */
        @Schema(title = "createDate",description = "创建时间")
        private  Date createDate; 
        /**
        * 创建用户
        */
        @Schema(title = "createUser",description = "创建用户")
        private  Long createUser; 
        /**
        * 修改时间
        */
        @Schema(title = "updateDate",description = "修改时间")
        private  Date updateDate; 
        /**
        * 修改用户
        */
        @Schema(title = "updateUser",description = "修改用户")
        private  Long updateUser; 
}